This invention relates generally to a system and method for controlling the access and use of a piece of software and in particular to a system and method for metering the access and downloading of a piece of software or content from a site.
For a developer of software, it is desirable to be able to track the usage of the software by users and customers in order to prevent piracy and ensure that the developer receives the licensing fee for the use of the software. In this description, the term xe2x80x9csoftwarexe2x80x9d may refer to both software applications and content files, such as three dimensional animation files, video files, sound files and the like. It is especially hard to track the use of a piece of content since the content may be easily moved from one computer to another computer. The problem of trying to reduce piracy and to ensure the developer receives the appropriate compensation for use of the software is exacerbated by the World Wide Web (the Web) in which it is very easy to access a Web site and download a piece of software or content file.
In the past, developers required a person who purchased the software to attach a hardware dongle (a piece of hardware connected to a computer with a particular hardwired key inside it) to the computer so that only that computer is able to access the software. In particular, whenever the software is executed by the user, the software checked to determine if a hardware dongle is connected to the computer and to determine whether the key within the hardware dongle is correct. After the software confirmed that the hardware dongle with the correct key is attached to the computer, the software permit the user to use the software. The conventional hardware dongle does limit the use of the software, but is very cumbersome and annoying to the user. The hardware dongle requires the software developer to purchase the dongle and then either absorb the cost of the dongle or pass it on to the client so that it is most often used for more expensive software. In addition, the client may find the hardware dongle a major inconvenience since it makes it difficult to transfer the software to another computer if needed. The hardware dongle does work well for a single computer executing the software, but is less suited to a Web-based system in which the user of the computer may be downloading a piece of software from a Web site.
Another conventional software access limiter system involves forcing the user to go to an authorized Web site each time the user wanted a new piece of software. For example, a developer may sell a piece of software to a customer. The customer may want to display various content developed by the customer using the developer""s piece of software. The developer wants to limit the display of that content in order to receive a license fee for its display. With this system, each time that a user wanted to view a particular piece of content, such as a three dimensional animation character, the user would be required to go to the developer""s authorized Web site/server and enter a password in order to download and then view the content. This system is a major inconvenience for the user since the user does not want to have to go to a completely different Web site and enter a password in order to download the new content. This system may discourage a user from using the software.
Another conventional system involves a piece of security software resident on the server of the customer who creates the content or software. The security software meters the access to the content or software on the customer""s site created using the developer""s software. This system requires that the developer is permitted to install a piece of security software on the server of the customer. This system is therefore a major inconvenience to the customer as well as a security risk. In summary, the above systems do not permit the developer to receive his compensation for use of the software or content without becoming a major inconvenience to either the user or the third party. Thus, it is desirable to provide a software authorization system and method which avoids the above problems and limitations of the conventional systems and it is to this end that the present invention is directed.
The software authorization system and method in accordance with the invention permits a developer to provide licensed software or content files to a customer where the license revenues to the developer increase as the scale of the customer""s site expands because the authorization system is easily scaleable. The system may also permit license-free content to be displayed in a way that encourages customers to purchase a license. The system is transparent to the user of the customer""s site so that the user is not inconvenienced. The customer also does not need to store an executable software application on the customer""s site. The system also does not require a piece of hardware, such as a hardware dongle. The system also eliminates the need for the developer""s site to be involved in any authorization transactions. The license granted by the system may be limited to a predetermined number or locations of the copies, such of a predetermined number of Web pages or a predetermined number of Uniform Resource Locators (URL""s). The license granted using the system may also be time-limited. The system also ensures that an author of a software or content file is identified and that the file cannot be accessed without the author""s permission.
In more detail, a developer may be paid a license fee by the customer so that a customer may display or execute the developer""s software or content on the customer""s Web site. The ability to display or execute the software or content is limited to a predetermined number of locations, such as Web pages, within a site, such as the Web site, of the customer. For example, the customer may pay for the right to display or execute the software or content on 10 Web pages which permits the customer to store the licensed software or content on ten different Web pages on the customer""s site. To specify the locations of the licensed software or content, the customer may enter the addresses of the locations (e.g., the URL""s of the Web pages) into a master key provided by the developer. The customer may update the master key at any time to increase the number of authorized locations. When a user downloads the licensed software or content from the customer""s site, the software executing on the user""s computer (known as the Player) may also download the master key and compare the master key to the downloaded licensed software or content file. Based on the comparison, the player application in the user""s computer determines whether or not the software or content may be executed or displayed.
Thus, in accordance with the invention, a system for controlling the execution of a piece of software developed by a developer on a site of the customer is provided. The system comprises a customer site comprising one or more locations containing one or more pieces of software of the developer, a master key purchased by the customer that specifies the one or more locations on the site of the customer where the software is located wherein the master key is stored at a particular location on the site of the customer. Each piece of software of the developer contains a content key that identifies location of the master key. The system further comprises a user computer comprising means for determining if the execution of the piece of software downloaded from the customer""s site is authorized by the developer wherein the determining means comprises means for downloading the piece of software from the customer""s site, means for determining the location of the master key based on the content key in the piece of software, means for downloading the master key from the determined location and means for comparing the locations contained in the master key to the location of the piece of software to determine if the piece of software is accessible by the user computer.